From 5af2ee5b88ba3325cc5c6800baea71a8f2f821c2 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 4 Oct 2006 09:42:41 +0100 Subject: [PATCH] [XEND] If 'vncused' is set, it won't specify an explicit display num to QEMU. In the current xen-unstable.hg tree tough, XenD will always pass an explicit '-vnc ' parameter to qemu-dm, regardless of whether 'vncunused' is set. So the 'vncunused' bit only takes effect if the explicitly passed display already has something bound to it. Consider what happens when the host machine has been up for a while - the Domain ID's start getting very high. This plays havoc with firewalls - for example an admin may know that only 10 domains will ever be running at any time, so they should be able to simply open up ports 5900 -> 5910. The correct behaviour should be: - If 'vncdisplay' is set, use that explicit display - If 'vncunused' is set non-zero, allocate first port about 5900 - Allocate fixed port based on domain-ID Signed-off-by: Daniel P. Berrange --- tools/python/xen/xend/image.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 7e8eeb1ba4..39f76c33ae 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -355,10 +355,12 @@ class HVMImageHandler(ImageHandler): if vnc: vncdisplay = sxp.child_value(config, 'vncdisplay', int(self.vm.getDomid())) - ret = ret + ['-vnc', '%d' % vncdisplay, '-k', 'en-us'] vncunused = sxp.child_value(config, 'vncunused') if vncunused: ret += ['-vncunused'] + else: + ret += ['-vnc', '%d' % vncdisplay] + ret += ['-k', 'en-us'] return ret def createDeviceModel(self): -- 2.30.2